#ifndef BINDLIST_H
#define BINDLIST_H

#include <QLinkedList>

#include "Bind.h"

class BindList
{
public:

    // Constructor
    BindList();

    // Destructor
    ~BindList();

    // ********************** Setters ************************

    // Add a new bind to the list
    void addBind(Bind *bind);

    //Copy the binds into
    void copy(BindList origin);

    // delete the bind from the list who correspond the key
    void deleteBind(QString key);

    void clearList();


    // ********************** Getters ***********************

    // get the entire list of binds
    QLinkedList<Bind *> getBinds();

    // get the bind who corresponds the key
    Bind *getBind(QString key);


    // ******************** Booleans ************************

    // return true if exist a bind with the key
    bool containsBind(QString key);


private:
    QLinkedList<Bind *> binds_;

};

#endif // BINDLIST_H
